﻿namespace ZuoAlgorithms.Class007;

public class Complexity
{
    // 只用一个循环完成冒泡排序
    // 但这是时间复杂度O(N^2)的！
    public void BubbleSort(int[] arr)
    {
        if (arr == null || arr.Length < 2)
        {
            return;
        }
        int n = arr.Length;
        int end = n - 1;
        int i = 0;
        while (end > 0)
        {
            if (arr[i] > arr[i + 1])
            {
                Swap(arr, i, i + 1);
            }
            if (i < end - 1)
            {
                i++;
            }
            else
            {
                end--;
                i = 0;
            }
        }

    }


    public void Swap(int[] arr, int i, int j)
    {
        int tmp = arr[i];
        arr[i] = arr[j];
        arr[j] = tmp;
    }
}
